const Promise = require('./promise');
let promise = new Promise((resolve, reject) => {
  resolve();
});

/*let promise2 = promise.then(() => {
  return promise2; //TODO 3.5 then接受的参数方法中如果return的是这个then返回的promise的引用 就会报错
});

promise2.then(function () {

},function(err){
  console.log(err);
});*/

/*
TypeError: Chaining cycle detected for promise #<Promise>
at process._tickCallback (internal/process/next_tick.js:68:7)
at Function.Module.runMain (internal/modules/cjs/loader.js:757:11)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)*/


let promise2 = promise.then(() => {
  return promise2; // 这样就不会报错 这样写 这里的promise2其实是第三个promise了 也就不是在第二个then中的()=>{return}返回第二个then()返回的promise了
}).then(function () {
  console.log(1);
},function(err){
  console.log(err);
});

console.log(promise2)

setTimeout(()=>{
  console.log(promise2)
})
